This section is intended to provide a background to the various embodiments described. Unless otherwise specifically indicated, what is described in this section is not prior art to the description and/or claims of this disclosure and is not admitted to be prior art by the mere inclusion in this section.
Auto-completion is used in Integrated Development Environments (IDEs) to assist a developer in the process of writing software by presenting a list of possible alternative choices the developer has when typing a set of commands. Some early auto-completion products relied upon the object-oriented nature of the programming language being used. When a developer types the name of an instance of a class and then presses a particular key, the IDE tool would present a dropdown list with options that contain the functions/or variables of that specific class. Some other auto-completion products further refined those alternative choices based on characteristics of the underlying programming language. For example, when the user writes an expression that sums two integer numbers, after she has pressed the symbol “+” (plus) the IDE would automatically recommend the name of the variable whose type matches that of the first operand. The IDE would also propose other variables which are available in the same scope but whose type does not match directly, but could match using type-casting (i.e. from String to Integer).
Moreover, some IDEs provide code suggestions by automatically creating placeholders in the body of a class for the different functions required by an interface implemented by that class. These features, which are used in IDEs for textual programming languages, rely on syntax, type, and availability of functions or variables of the programming language.
Similar auto-completion techniques have been proposed for workflow development languages in order to complement manual workflow development and help the developer avoid typos and structural development errors. However, further improved techniques for assisting the workflow developer are needed.